<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>2-js 数据类型</title>
  </head>
  <body>
    <h1>js 数据类型</h1>
    <h3>js 数据类型</h3>
    <div>
      <p>1. 基本数据类型： number string boolean undefined null symbol</p>
      <p>2. 引用数据类型： object function array date regexp</p>
    </div>
    <script>
      // 基本数据类型
      let a = 1; // number 数字类型
      let b = "1"; // string 字符串类型
      let c = true; // boolean 布尔类型
      let d = undefined; // undefined 未定义
      let e = null; // null 空
      let f = Symbol("1"); // symbol 符号
      // 引用数据类型
      let g = {}; // object 对象
      let h = function () {}; // function 函数
      let i = []; // array 数组
      let j = new Date(); // date 日期
      let k = /1/; // regexp 正则表达式

      console.log(a, b, c, d, e, f, g, h, i, j, k);





      // 数据类型的判断的方法
      /*
        typeof 只能判断基本数据类型
        instanceof 只能判断引用数据类型
        constructor 只能判断引用数据类型
        Object.prototype.toString.call() 可以判断所有数据类型
      */
      console.log(typeof a ); // number




      // 数据类型转换
      /*
        1. 转换为字符串
          toString()
          String()
        2. 转换为数字
          parseInt()
          parseFloat()
          Number()
        3. 转换为布尔
          Boolean()
      */
      let str = "1";
      console.log(Number(str)); // 转换为数字
      console.log(Boolean(str)); // 转换为布尔
      console.log(str + 2); // 转换为字符串
      console.log(+str); // 转换为数字
      console.log(!!str); // 转换为布尔
    </script>
  </body>
</html>
